package com.smmisia.article.service;

import com.smmisia.article.entity.Group;
import com.smmisia.article.request.CreateGroupRequest;
import com.smmisia.article.response.socket.FriendResponse;
import com.smmisia.article.response.socket.GroupResponse;
import com.smmisia.common.Result.Result;
import com.smmisia.common.request.feign.request.FeignCreateGroupRequest;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.validation.Valid;


public interface GroupService extends IService<Group> {

    Result<Boolean> create(@Valid FeignCreateGroupRequest request);

    Result<Boolean> add(Integer accompanyId,Integer userId);

    Result<Boolean> disband(Integer accompanyId);

    Result<Boolean> addGroup(Integer groupId);

    Result<Boolean> createGroup(@Valid CreateGroupRequest request);

    Result<Boolean> removeGroup(Integer id);

    Result<FriendResponse> listGroupMember(Integer groupId);

    Result<GroupResponse> listGroup();

    Result<Boolean> quitGroup(Integer groupId);
}
